import 'package:brisk/theme/application_theme.dart';
import 'package:flutter/material.dart';

ApplicationTheme tokyoNight = const ApplicationTheme(
  themeId: "Tokyo Night",
  isLight: false,
  fontWeight: FontWeight.normal,
  textColor: Colors.white,
  widgetTheme: WidgetTheme(
    tooltipIconColor: Colors.white,
    toolTipColor: ToolTipColor(
      backgroundColor: Color.fromRGBO(26, 27, 38, 0.95),
      textColor: Color.fromRGBO(192, 202, 245, 1),
      borderColor: Color.fromRGBO(67, 76, 94, 1),
    ),
    iconButtonColor: ButtonColor(
      iconColor: Colors.white54,
      hoverIconColor: Colors.white,
      hoverBackgroundColor: Color.fromRGBO(19, 25, 30, 1.0),
      backgroundColor: Color.fromRGBO(26, 30, 40, 1),
    ),
    showHideButtonColor: ButtonColor(
      iconColor: Color.fromRGBO(97, 175, 239, 1),
      textColor: Color.fromRGBO(97, 175, 239, 1),
      hoverTextColor: Color.fromRGBO(180, 190, 254, 1),
      backgroundColor: Colors.transparent,
      hoverIconColor: Colors.white70,
      hoverBackgroundColor: Color.fromRGBO(69, 71, 90, 0.3),
    ),
    switchColor: SwitchColor(
      activeColor: Colors.green,
      focusColor: Colors.lightGreen,
    ),
    dropDownColor: DropDownColor(
      dropDownBackgroundColor: Color.fromRGBO(33, 38, 47, 1),
      itemTextColor: Colors.white,
    ),
    textFieldColor: TextFieldColor(
      focusBorderColor: const Color.fromRGBO(53, 89, 143, 1),
      borderColor: const Color.fromRGBO(65, 65, 65, 1),
      fillColor: Color.fromRGBO(26, 30, 40, 1),
      textColor: Colors.white,
      cursorColor: Colors.white,
    ),
  ),
  contextMenuTheme: const ContextMenuTheme(
    backgroundColor: Color.fromRGBO(26, 27, 38, 0.95),
    borderColor: Color.fromRGBO(67, 76, 94, 1),
    itemDisabledTextColor: Colors.grey,
    itemTextColor: Color.fromRGBO(192, 202, 245, 1),
  ),
  downloadProgressDialogTheme: const DownloadProgressDialogTheme(
    connectionProgressColor: ProgressIndicatorColor(
      backgroundColor: Color.fromRGBO(30, 33, 45, 1.0),
      color: Colors.blueAccent,
    ),
    totalProgressColor: ProgressIndicatorColor(
      backgroundColor: Color.fromRGBO(41, 45, 62, 1.0),
      color: Colors.green,
    ),
    resumeColor: ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: Color.fromRGBO(110, 170, 110, 1),
      hoverTextColor: Colors.white,
      backgroundColor: Color.fromRGBO(100, 170, 100, 1),
      textColor: Colors.white,
      borderHoverColor: Colors.green,
    ),
    pauseColor: ButtonColor(
      iconColor: Color.fromRGBO(100, 40, 50, 1),
      hoverIconColor: Colors.white,
      textColor: Color.fromRGBO(100, 40, 50, 1),
      hoverBackgroundColor: Color.fromRGBO(200, 110, 130, 1),
      hoverTextColor: Colors.white,
      backgroundColor: Color.fromRGBO(243, 139, 168, 1),
      borderColor: Colors.transparent,
      borderHoverColor: Colors.red,
    ),
  ),
  topMenuTheme: const TopMenuTheme(
    backgroundColor: Color.fromRGBO(33, 38, 47, 1),
    disabledHoverColor: Colors.white10,
    addUrlColor: const ButtonColor(
      iconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverIconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverBackgroundColor: const Color.fromRGBO(56, 209, 82, 0.2),
    ),
    downloadColor: const ButtonColor(
      iconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverIconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverBackgroundColor: const Color.fromRGBO(56, 209, 82, 0.2),
    ),
    stopColor: const ButtonColor(
      iconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverIconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverBackgroundColor: const Color.fromRGBO(163, 23, 30, 0.3),
    ),
    checkForUpdateColor: const ButtonColor(
      iconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverIconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverBackgroundColor: const Color.fromRGBO(0, 128, 128, 0.3),
    ),
    stopAllColor: const ButtonColor(
      iconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverIconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverBackgroundColor: const Color.fromRGBO(163, 23, 30, 0.3),
    ),
    removeColor: const ButtonColor(
      iconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverIconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverBackgroundColor: const Color.fromRGBO(163, 23, 30, 0.3),
    ),
    addToQueueColor: const ButtonColor(
      iconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverIconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverBackgroundColor: const Color.fromRGBO(0, 128, 128, 0.3),
    ),
    searchColor: const ButtonColor(
      iconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverIconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverBackgroundColor: const Color.fromRGBO(0, 128, 128, 0.3),
    ),
    extensionColor: const ButtonColor(
      iconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverIconColor: const Color.fromRGBO(0, 128, 128, 1),
      hoverBackgroundColor: const Color.fromRGBO(0, 128, 128, 0.3),
    ),
    createQueueColor: const ButtonColor(
      iconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverIconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverBackgroundColor: const Color.fromRGBO(56, 209, 82, 0.2),
    ),
    startQueueColor: const ButtonColor(
      iconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverIconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverBackgroundColor: const Color.fromRGBO(56, 209, 82, 0.2),
    ),
    stopQueueColor: const ButtonColor(
      iconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverIconColor: const Color.fromRGBO(163, 23, 30, 1),
      hoverBackgroundColor: const Color.fromRGBO(163, 23, 30, 0.3),
    ),
    scheduleQueueColor: const ButtonColor(
      iconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverIconColor: const Color.fromRGBO(56, 209, 82, 0.9),
      hoverBackgroundColor: const Color.fromRGBO(56, 209, 82, 0.2),
    ),
  ),
  sideMenuTheme: const SideMenuTheme(
    settingIconColor: Colors.white,
    backgroundColor: Color.fromRGBO(30, 34, 45, 1),
    briskLogoColor: Color.fromRGBO(97, 175, 239, 1),
    activeTabIconColor: Colors.white,
    activeTabBackgroundColor: Color.fromRGBO(108, 172, 227, 1.0),
    tabHoverColor: Color.fromRGBO(52, 56, 81, 1),
    tabIconColor: Colors.white,
    tabBackgroundColor: Colors.transparent,
    expansionTileExpandedColor: const Color.fromRGBO(64, 65, 66, 0.8),
    expansionTileItemActiveColor: const Color.fromRGBO(10, 126, 242, 0.8),
    expansionTileItemHoverColor: const Color.fromRGBO(64, 65, 66, 0.2),
  ),
  downloadGridTheme: const DownloadGridTheme(
    rowTextColor: Colors.white,
    titleColumnTextColor: Colors.white,
    backgroundColor: Color.fromRGBO(22, 26, 33, 1),
    activeRowColor: Color.fromRGBO(40, 45, 60, 1),
    checkedRowColor: Color.fromRGBO(67, 76, 94, 1),
    borderColor: Colors.black26,
    rowColor: Colors.black26,
  ),
  settingTheme: const SettingTheme(
    pageTheme: const SettingPageTheme(
      groupBackgroundColor: Color.fromRGBO(40, 45, 60, 1),
      groupTitleTextColor: Colors.white,
      titleTextColor: Colors.white,
    ),
    sideMenuTheme: const SettingSideMenuTheme(
      backgroundColor: Color.fromRGBO(30, 34, 45, 1),
      activeTabBackgroundColor: const Color.fromRGBO(53, 89, 143, 1),
      activeTabIconColor: Colors.white,
      inactiveTabIconColor: Colors.white,
      tabHoverBackgroundColor: Color.fromRGBO(52, 56, 81, 1),
    ),
    saveButtonColor: ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: Color.fromRGBO(132, 170, 100, 1),
      hoverTextColor: Colors.white,
      backgroundColor: Color.fromRGBO(152, 195, 121, 1),
      textColor: Colors.black87,
      borderHoverColor: Colors.green,
    ),
    resetDefaultsButtonColor: ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: Color.fromRGBO(170, 135, 220, 1),
      hoverTextColor: Colors.white,
      borderColor: Colors.transparent,
      textColor: Colors.white70,
      borderHoverColor: const Color.fromRGBO(53, 89, 143, 1),
    ),
  ),
  queuePageTheme: const QueuePageTheme(
    backgroundColor: const Color.fromRGBO(30, 30, 30, 1),
    queueItemTitleTextColor: Colors.white,
    queueItemTitleDetailsTextColor: Colors.grey,
    queueItemHoverColor: Colors.white12,
  ),
  alertDialogTheme: AlertDialogTheme(
    backgroundColor: const Color.fromRGBO(33, 38, 47, 0.95),
    innerContainerBorderColor: Colors.white30,
    borderColor: const Color.fromRGBO(67, 76, 94, 1),
    cancelColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      textColor: Colors.white,
      hoverBackgroundColor: Color.fromRGBO(224, 108, 117, 1),
      hoverTextColor: Colors.white,
      backgroundColor: Colors.transparent,
      borderColor: Colors.transparent,
      borderHoverColor: Colors.red,
    ),
    secondaryMiscButtonColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: Color.fromRGBO(33, 38, 47, 0.15),
      hoverTextColor: Color.fromRGBO(205, 214, 244, 1),
      textColor: Color.fromRGBO(205, 214, 244, 1),
      borderColor: Color.fromRGBO(88, 91, 112, 0.3),
      backgroundColor: Color.fromRGBO(33, 38, 47, 0.1),
    ),
    primaryMiscButtonColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: Color.fromRGBO(170, 135, 220, 1),
      hoverTextColor: Colors.black87,
      textColor: Colors.black87,
      backgroundColor: Color.fromRGBO(198, 160, 246, 1),
    ),
    iconColor: Colors.white,
    checkBoxColor: CheckBoxColor(
      borderColor: Colors.grey,
      activeColor: const Color.fromRGBO(53, 89, 143, 1),
    ),
    acceptButtonColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: Color.fromRGBO(110, 170, 110, 1),
      hoverTextColor: Colors.white,
      backgroundColor: Color.fromRGBO(100, 170, 100, 1),
      textColor: Colors.white,
      borderHoverColor: Colors.green,
    ),
    declineButtonColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      textColor: Colors.white,
      hoverBackgroundColor: const Color.fromRGBO(244, 67, 54, 0.6),
      hoverTextColor: Colors.white,
      backgroundColor: Colors.transparent,
      borderColor: Colors.transparent,
      borderHoverColor: Colors.red,
    ),
    deleteConfirmColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverTextColor: Colors.white,
      hoverBackgroundColor: const Color.fromRGBO(241, 3, 3, 1.0),
      backgroundColor: const Color.fromRGBO(220, 38, 38, 1),
      textColor: Colors.white,
    ),
    deleteCancelColor: const ButtonColor(
      iconColor: Colors.transparent,
      hoverIconColor: Colors.transparent,
      hoverBackgroundColor: const Color.fromRGBO(61, 61, 61, 1.0),
      backgroundColor: const Color.fromRGBO(37, 37, 37, 1.0),
      textColor: Colors.white70,
    ),
    surfaceColor: const Color.fromRGBO(40, 45, 60, 1),
  ),
);
